package com.hl.mapper;

import com.hl.domain.Course.*;
import com.hl.domain.User;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
* @author SHX
* @description 针对表【course(课程表，存储所有课程信息)】的数据库操作Mapper
* @createDate 2024-09-05 15:52:52
* @Entity com.hl.domain.Course.Course
*/
public interface CourseMapper {

    /**
     * 登录验证所需mapper
     * */

    User selectUseByUserName(String username);

    int deleteByPrimaryKey(Long id);

    int insert(Course record);

    int insertSelective(Course record);

    Course selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(Course record);

    int updateByPrimaryKey(Course record);

    List<Course> selectALlCourse();

    //查询所有课程评价
    List<Coursemark> selectAllCourseMark(int i);

    // 查询课程老师
    CourseTeacher selectCourseTeacherById(int i);

    // 查询老师证书
    List<CourseBook> selectCourseTeacherBook(int i);

    // 查询老师擅长领域
    List<CourseGood> selectCourseTeacherGood(int i);

    // 查询课程问题
    List<CourseProblem> selectCourseProblem(int i);

    // 查询用户信息
    CourseUser selectCourseUserById(int i);

    // 查询问题最晚回复回复时间
    Date selectCourseProblemLastReplyTime(int i);

    // 查询课程价格
    CourseHot selectCourseHotById(int id);

    // 查询课程热度信息
    CoursePrice selectCoursePriceById(int id);

    // 查询课程总数
    Long selectCountOfCourse();

    // 查询所有咨询师
    List<CourseTeacher> selectAllCourseTeachers();

    // 通过课程教师id查询教授的课程
   List<Course> selectCourseByTeacherId(int i);

   // 有条件的模糊查询 搜索所有课程列表
    List<Course> selectAllCourseByOptions(@Param("courseName")String courseName, @Param("teacherId") Long teacherId);

    // 添加价格
    int addCoursePrice(@Param("courseId")Long courseId, @Param("price") Double price,@Param("discount") Double discount);

    // 修改价格
    int updateCoursePriceById(@Param("courseId")Long courseId, @Param("price") Double price,@Param("discount") Double discount);

    // 查询是否存在课程价格信息
    int selectNumOfCoursePriceById(@Param("courseId")Long courseId);







}
